package com.ming.util;

import lombok.Getter;
import lombok.Setter;

import java.util.HashMap;
import java.util.Map;

/**
 * json返回的数据封装
 * @author MING
 * @date 2018/8/9 10:41
 */
@Getter
@Setter
public class JsonData {

	// 返回结果
    private boolean success;

	// 异常后的通知，
    private String message;

	// 正常的时候返回给前台的数据
    private Object data;

    /**
     * 返回结果
     * @param success
     */
    public JsonData(boolean success) {
        this.success = success;
    }

    /**
     * 成功的时候，返回msg和data就够
     * @param object
     * @param message
     * @return
     */
    public static JsonData success(Object object, String message) {
        JsonData jsonData = new JsonData(true);
        jsonData.data = object;
        jsonData.message = message;
        return jsonData;
    }

    /**
     * 成功的时候，就返回data数据
     * @param object
     * @return
     */
    public static JsonData success(Object object) {
        JsonData jsonData = new JsonData(true);
        jsonData.data = object;
        return jsonData;
    }

    /**
     * 成功的时候，就返回msg说明
     * @param message
     * @return
     */
    public static JsonData success(String message) {
        JsonData jsonData = new JsonData(true);
        jsonData.message = message;
        return jsonData;
    }

    /**
     * 成功的时候，不需要返回任何数据
     * @return
     */
    public static JsonData success() {
        return new JsonData(true);
    }

    /**
     * 失败的时候，就返回msg说明
     * @param message
     * @return
     */
    public static JsonData fail(String message) {
        JsonData jsonData = new JsonData(false);
        jsonData.message = message;
        return jsonData;
    }

    public Map<String, Object> toMap() {
        HashMap<String, Object> result = new HashMap<String, Object>();
        result.put("success", success);
        result.put("message", message);
        result.put("data", data);
        return result;
    }
}
